//TODO 联合类型(表示取值可以是多种类型中的有一种)
    //需求1:定义一个函数得到一个数字或字符串值的字符串形式值
/*function getstring(str:number|string):string{

    return str.toString()
}
//console.log(getstring(123))
console.log(getstring('123'))*/

//需求2:定义一个函数得到一个数字或字符串值的长度===类型断言:告诉编译器,我知道我自己是什么类型的,也知道自己在干什么
// 类型断言的语法方式1:<string>str
//类型断言的语法方式2:str as string
function getstring(str:number|string):number{

    //return str.toString().length
    //如果str本身就是string类型,那么是没有必要调用toString()方法
    if((<string>str).length){
//return (<string>str).length
        return (str as string).length
    }else{
return str.toString().length
    }
}
console.log(getstring(123))
console.log(getstring('123'))


//类型推断
let txt = 100
//txt='sss'   报错
console.log(txt)

let txt2;//=>any类型
//txt2=100
//txt2='sss'
txt2={name:10,age:33}
console.log(txt2)